home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / OpenTptLinks.p < prev    next >
Encoding:
Text File  |  1996-02-13  |  4.8 KB  |  184 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        OpenTptLinks.p
  3.  
  4.      Contains:    Definitions for link modules
  5.  
  6.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  7.                  All rights reserved.
  8.  
  9. }
  10.  
  11. {$IFC UNDEFINED UsingIncludes}
  12. {$SETC UsingIncludes := 0}
  13. {$ENDC}
  14.  
  15. {$IFC NOT UsingIncludes}
  16.  UNIT OpenTptLinks;
  17.  INTERFACE
  18. {$ENDC}
  19.  
  20. {$IFC UNDEFINED __OPENTPTLINKS__}
  21. {$SETC __OPENTPTLINKS__ := 1}
  22.  
  23. {$I+}
  24. {$SETC OpenTptLinksIncludes := UsingIncludes}
  25. {$SETC UsingIncludes := 1}
  26.  
  27.  
  28. {$IFC UNDEFINED __OPENTRANSPORT__}
  29. {$I OpenTransport.p}
  30. {$ENDC}
  31. {    Types.p                                                        }
  32. {        ConditionalMacros.p                                        }
  33. {    MixedMode.p                                                    }
  34. {    Strings.p                                                    }
  35.  
  36. {$PUSH}
  37. {$ALIGN MAC68K}
  38. {$LibExport+}
  39. {$SETC kPortBaseResID := 1000}
  40.  
  41. CONST
  42.     kOTADEVDevice                = 1;                            { An Atalk ADEV        }
  43.     kOTMDEVDevice                = 2;                            { A TCP/IP MDEV        }
  44.     kOTLocalTalkDevice            = 3;                            { LocalTalk            }
  45.     kOTIRTalkDevice                = 4;                            { IRTalk                }
  46.     kOTTokenRingDevice            = 5;                            { Token Ring            }
  47.     kOTISDNDevice                = 6;                            { ISDN                    }
  48.     kOTATMDevice                = 7;                            { ATM                    }
  49.     kOTSMDSDevice                = 8;                            { SMDS                    }
  50.     kOTSerialDevice                = 9;                            { Serial                 }
  51.     kOTEthernetDevice            = 10;                            { Ethernet                }
  52.     kOTSLIPDevice                = 11;                            { SLIP Pseudo-device    }
  53.     kOTPPPDevice                = 12;                            { PPP Pseudo-device    }
  54.     kOTModemDevice                = 13;                            { Modem Pseudo-Device    }
  55.     kOTFastEthernetDevice        = 14;                            { 100 MB Ethernet        }
  56.     kOTFDDIDevice                = 15;                            { FDDI                    }
  57.     kOTATMLANEDevice            = 16;                            { ATM LAN emulation    }
  58.     kOTATMSNAPDevice            = 17;                            { ATM SNAP emulation    }
  59.  
  60. {******************************************************************************
  61. ** Interface option flags
  62. *******************************************************************************}
  63. {}
  64. { Ethernet framing options}
  65. {}
  66.     kOTFramingEthernet            = $01;
  67.     kOTFramingEthernetIPX        = $02;
  68.     kOTFraming8023                = $04;
  69.     kOTFraming8022                = $08;
  70.  
  71. {}
  72. { Raw mode options}
  73. {}
  74.     kOTRawRcvOn                    = 0;
  75.     kOTRawRcvOff                = 1;
  76.     kOTRawRcvOnWithTimeStamp    = 2;
  77.  
  78. {}
  79. { OPT_SETPROMISCUOUS value}
  80. {}
  81.     DL_PROMISC_OFF                = 0;
  82.  
  83. {******************************************************************************
  84. ** Module definitions
  85. *******************************************************************************}
  86. {}
  87. { XTI Levels}
  88. {}
  89.     LNK_ENET                    = 'ENET';
  90.     LNK_TOKN                    = 'TOKN';
  91.     LNK_FDDI                    = 'FDDI';
  92.     LNK_TPI                        = 'LTPI';
  93.  
  94. {}
  95. { Module IDs}
  96. {}
  97.     kT8022ModuleID                = 7100;
  98.     kEnetModuleID                = 7101;
  99.     kTokenRingModuleID            = 7102;
  100.     kFDDIModuleID                = 7103;
  101.  
  102. {}
  103. { Module Names}
  104. {}
  105.     kEnet8022Name                = 'enet8022x';
  106.     kEnetName                    = 'enet';
  107.     kFastEnetName                = 'fenet';
  108.     kTokenRingName                = 'tokn';
  109.     kFDDIName                    = 'fddi';
  110.     kIRTalkName                    = 'irtlk';
  111.     kSMDSName                    = 'smds';
  112.     kATMName                    = 'atm';
  113.     kT8022Name                    = 'tpi8022x';
  114.     kATMLANEName                = 'atmlane';
  115.     kATMSNAPName                = 'atmsnap';
  116.  
  117. {}
  118. { Address Family}
  119. {}
  120.     AF_8022                        = 8200;                            { Our 802.2 generic address family    }
  121.  
  122. {******************************************************************************
  123. ** Options
  124. *******************************************************************************}
  125.     OPT_ADDMCAST                = $1000;
  126.     OPT_DELMCAST                = $1001;
  127.     OPT_RCVPACKETTYPE            = $1002;
  128.     OPT_RCVDESTADDR                = $1003;
  129.     OPT_SETRAWMODE                = $1004;
  130.     OPT_SETPROMISCUOUS            = $1005;
  131.  
  132.     kETypeStandard                = 0;
  133.     kETypeMulticast                = 1;
  134.     kETypeBroadcast                = 2;
  135.     kETRawPacketBit                = $80000000;
  136.     kETTimeStampBit                = $40000000;
  137.  
  138. {******************************************************************************
  139. ** Link related constants
  140. *******************************************************************************}
  141.     kMulticastLength            = 6;                            { length of ENET hardware addresses    }
  142.     k48BitAddrLength            = 6;
  143.     k8022DLSAPLength            = 2;                            { The protocol type is our DLSAP        }
  144.     k8022SNAPLength                = 5;
  145.     kEnetAddressLength            = k48BitAddrLength + k8022DLSAPLength;
  146.     kSNAPSAP                    = $00AA;                        { Some special DLSAPS for ENET        }
  147.     kIPXSAP                        = $00FF;
  148.     kMax8022SAP                    = $00FE;
  149.     k8022GlobalSAP                = $00FF;
  150.     kMinDIXSAP                    = 1501;
  151.     kMaxDIXSAP                    = $FFFF;
  152.  
  153. {******************************************************************************
  154. ** Generic Address Structure
  155. *******************************************************************************}
  156.  
  157. TYPE
  158.     T8022Address = RECORD
  159.         fAddrFamily:            OTAddressType;
  160.         fHWAddr:                ARRAY [0..k48BitAddrLength-1] OF SInt8; (* UInt8 *)
  161.         fSAP:                    UInt16;
  162.         fSNAP:                    ARRAY [0..k8022SNAPLength-1] OF SInt8; (* UInt8 *)
  163.     END;
  164.  
  165.  
  166. CONST
  167.     k8022BasicAddressLength        = sizeof(OTAddressType) + k48BitAddrLength + sizeof(UInt16);
  168.     k8022SNAPAddressLength        = sizeof(OTAddressType) + k48BitAddrLength + sizeof(UInt16) + k8022SNAPLength;
  169.  
  170. {******************************************************************************
  171. ** Some helpful stuff for dealing with 48 bit addresses
  172. *******************************************************************************}
  173.  
  174. {$ALIGN RESET}
  175. {$POP}
  176.  
  177. {$SETC UsingIncludes := OpenTptLinksIncludes}
  178.  
  179. {$ENDC} {__OPENTPTLINKS__}
  180.  
  181. {$IFC NOT UsingIncludes}
  182.  END.
  183. {$ENDC}
  184.